import { ref } from 'vue'
import PageModel from '@/components/page-model'

type CallbackFn = (item?: any) => void

export function usePageModel(
  newBtnClick?: CallbackFn,
  editBtnClick?: CallbackFn
) {
  const pageModelInfo = ref({})

  //1:
  const pageModelRef = ref<InstanceType<typeof PageModel>>()

  //2:处理编辑按钮点击
  const handleEditBtnClick = (data: any) => {
    pageModelInfo.value = { ...data }
    if (pageModelRef.value) {
      pageModelRef.value.dialogVisible = true
    }
    editBtnClick && editBtnClick(data)
  }

  //3:处理新增按钮点击
  const handleNewBtnClick = () => {
    pageModelInfo.value = {}
    if (pageModelRef.value) {
      pageModelRef.value.dialogVisible = true
    }
    newBtnClick && newBtnClick()
  }

  return [pageModelInfo, pageModelRef, handleEditBtnClick, handleNewBtnClick]
}
